Tracing errors in computer programs can be a difficult, time-consuming process. Debugging tools assist developers in finding errors and tracing program flow by stopping a program when an exception (i.e., an error) is encountered at run time.
When multiple applications, running on different computing environments, interface with one another, tracking down the cause of errors may not be so straightforward. In such environments, a single debugging tool may not be adequate and compatible with different computing environments. An output from a first application may cause an exception in a second application. The second application throws the exception and ideally, preserves trace data; however, the first application simply keeps running. Stack trace data might be preserved for the first application if it is known that an error was thrown in the second application. In such instances, the stack trace data for each application may be examined to identify an error and determine a relationship between a comparison of the stack trace data for each application.
Sometimes, a developer of (or team who developed) the first application is not the same as the developer of (or team who developed) the second application. As such, each party responsible for develop of an application may not be aware of the implementation of a different application developed by a different party. Therefore, analysis of one application that calls another application may provide challenges to understand an error.
The problem is exacerbated not only when there are different computers executing different applications that interface with one another, but also when those computers are running in a cloud computing environment. That the hardware is disembodied from the developers adds yet another thing that can go wrong in troubleshooting. If more than a few computers or applications are involved, then the process of preserving all of the stack traces and analyzing them can become cumbersome. There is a need in the art for techniques to enable a person to obtain a better understanding of diagnostic data.